. SMACK-UP

   1 .
   2 . SMACK-UP
   3 . BY ROB ROSENHOUSE
   4 . FOR SUPER SOFTWARE
   5 .
   6 . (C) 1980
   7 .
   9 :RETURN ;NT=0;BC=90;FC=7
  10 CLEAR ;GOSUB 10000
  20 T=0;S=5;U=0;Z=6;K=5
 100 BOX 0,0,88,88,1;BOX 0,0,86,86,3;FOR A=-40TO 40STEP 10;FOR B=-40TO 40STEP 10
 110 BOX A,B,6,6,1;NEXT B;NEXT A
 120 FOR A=-40TO 40STEP 10;FOR B=-35TO 35STEP 10;BOX A,B,1,1,1;NEXT B;NEXT A
 125 CY=8;CX=-80;PRINT " SCORE",;CX=-80;CY=0;PRINT #4,T
 130 IF U>0GOTO 132
 131 BOX 60,0,5,88,2
 132 FOR R=1TO S;BOX 60,R×10-50,5,5,1;NEXT R
 140 X=-5;Y=-5;BOX X,Y,3,3,1
 145 L=40;M=35;BOX L,M,3,1,1;BOX L,M,1,3,1
 150 GOTO 1000
 500 T=T+1;CY=0;CX=-80;PRINT #4,T
 510 NT=2;MU="Q";NT=0
 520 IF T=50GOTO 550
 530 RETURN 
 550 U=U+1;T=0
 555 BOX X,Y,3,3,2;BOX L,M,3,1,3;BOX L,M,1,3,3
 560 &(21)=31;FOR A=1TO 3;FOR B=125TO 25STEP -1;&(19)=B;NEXT B;NEXT A;&(21)=0;&(19)=0
 570 CY=-16;CX=-80;PRINT "BONUS";CY=-24;CX=-80;PRINT #3,U
 580 Z=Z-1;S=S+1
 590 GOTO 120
1000 V=JX(1);W=JY(1);IF (V=0)×(W=0)+(V)×(W)GOTO 1000
1001 IF PX(X+V×5-1,Y)=1V=0
1002 IF PX(X,Y+W×5-1)=1W=0
1003 IF (V=0)×(W=0)GOTO 1000
1010 IF X+V×5<-40V=0
1015 IF X+V×5>40V=0
1020 IF Y+W×5<-40W=0
1030 &(21)=28;&(19)=110-T×2;&(18)=T×2+10
1060 BOX X,Y,3,3,2;X=X+V×5;Y=Y+W×5;BOX X,Y,3,3,3;IF PX(X,Y)=0GOSUB 500
1100 G=0;H=0
1105 IF L<X G=1
1110 IF L>X G=-1
1120 IF M<Y H=1
1130 IF M>Y H=-1
1131 IF RND (K)=K G=RND (3)-2;H=RND (3)-2
1135 IF (L+G×5=X)×(M+H×5=Y)GOTO 5000
1140 IF PX(L+G×5-1,M)=1G=0
1142 IF PX(L,M+H×5+1)=1H=0
1145 IF (G=0)×(H=0)GOTO 1190
1146 IF (G)×(H)GOSUB 1200
1160 BOX L,M,3,1,3;BOX L,M,1,3,3;L=L+G×5;M=M+H×5;BOX L,M,3,1,3;BOX L,M,1,3,3
1190 IF RND (Z)=ZGOTO 1100
1195 GOTO 1000
1200 A=RND (2);IF A=1G=0
1210 IF A=2H=0
1220 RETURN 
5000 &(21)=31;FOR A=50TO 100STEP 2;&(19)=A;NEXT A;&(21)=0;&(19)=0
5010 BOX X,Y,3,3,2;BOX L,M,3,1,3;BOX L,M,1,3,3
5020 FOR A=1TO 200;NEXT A;S=S-1;IF S<=0GOTO 6000
5030 GOTO 131
6000 BOX 0,0,80,48,2;CY=16;CX=-24;PRINT "GAME OVER
6005 IF U=0GOTO 6020
6010 FOR A=1TO U;FOR B=1TO 75STEP 3;T=T+3;CY=0;CX=-10;PRINT #3,T,;NT=1;MU="T";NT=0;NEXT B
6015 FOR C=1TO 500;NEXT C;NEXT A
6020 CY=8;CX=-30;PRINT "FINAL SCORE
6030 CY=0;CX=-10;PRINT #3,T,
7000 IF TR(1)RUN 
7010 GOTO 7000
10000 CX=-21;PRINT "SMACK-UP
10010 PRINT ;PRINT "USE JOYSTICK TO RUN OVER  MARKERS.  EVERY 50 PTS.   SCORES 1 EXTRA CAR
10020 FOR A=1TO 1500;NEXT A;CLEAR ;RETURN 

:RETURN 
>
